A Refinement Methodology for Object-Oriented Programs
نویسندگان
چکیده
Refinement is a well-known approach for developing correct-byconstruction software. It has been very successful for producing high quality code e.g., as implemented in the B tool. Yet, such refinement techniques are restricted in the sense that they forbid aliasing (and more generally sharing of data-structures), which often happens in usual programming languages. We propose a sound approach for refinement in presence of aliases. Suitable abstractions of programs are defined by algebraic data types and the so-called model fields. These are related to concrete program data using coupling invariants. The soundness of the approach relies on methodologies for (1) controlling aliases and (2) checking side-effects, both in a modular way.
منابع مشابه
Object-oriented Scientific Programming with Fortran 90
Fortran 90 is a modern language that introduces many important new features beneficial for scientific programming. While the array-syntax notation has received the most attention, we have found that many modern softaware development techniques can be supported by this language, including object-oriented concepts. While Fortran 90 is not a full object-oriented language it can directly support ma...
متن کاملA Framework for Object Identification and Refinement Process in Object-Oriented Analysis and Design
There are already many projects focusing on Computer Aided Software Engineering (CASE) tools for object-oriented analysis and design. However, at this moment, there are certain limitations to such solutions, such as, they are concentrated on object-oriented notation and forward/reverse engineering, and the methodology for object identification and refinement are not implemented well. This paper...
متن کاملA Refinement Theory for Concurrent Object Oriented Languages
A notion of refinement for concurrent object-oriented programs was originally presented in [3]. ln th.is article we prove that the refinement relation associated to this notion is a congruence with respect to various standard programming language constructors, including parallel and sequential composition, conditionals, and nondeterministic internal choice. We also establish a weaker compositio...
متن کاملA Computational Model for Object Oriented Programming
We describe a computational model for object oriented programs. A state of a computation is a directed graph in which each vertex represents an object and each edge represents an instance variable. Edges are labeled with instance variable names. We introduce a simple object oriented language and define a semantics which gives the meaning of each program as a function from states to states. Char...
متن کاملA Seamless Eiffel-Based Refinement Calculus for Object-Oriented Systems
The Eiffel language [4] can be used throughout the object-oriented software development process, for both specification and implementation. We outline work-in-progress on developing a refinement calculus for producing provably correct Eiffel programs from Eiffel specifications. We propose extensions to the calculus by integrating abstract data types as a front-end language that can be used for ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010